home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 5 / Apprentice-Release5.iso / Source Code / Add-Ons / 4D / ComboBox 1.1.1 / ComboBox_info.txt < prev    next >
Text File  |  1996-02-23  |  25KB  |  527 lines

  1.                       ComboBox 1.1.1
  2.                               External Area Package
  3.  
  4. Overview
  5.  
  6. The idea behind ComboBox is to provide an easy way for users to choose an item from a list.  4th Dimension provides Choice Lists for this purpose, but the current implementation has several problems:
  7.  
  8. •    The window containing the list of valid choices is physically separated from the layout’s enterable area.  This causes a distraction as users must shift their focus from between two very different areas of the screen.
  9. •    The programmer has no control over the location of the choice list window or the appearance of the text in the window.
  10. •    Unless the list is sorted, users cannot simply type the entries they wish, even if they know what they are looking for.
  11. •    Even after a choice has been made, users can still modify the selected text to become something that is not in the list.  This ability is not always desireable.
  12. •    The list of choices must reside in a 4D list, which is maintained on the server (in a multi-user environment).  Any other user on the entire system can change this list even while it is in use.
  13.  
  14. ComboBox addresses these user-related problems while providing a programming interface that allows the area to adapt to practically any look and feel the designer wishes.
  15.  
  16. This package contains two copies of ComboBox.  ComboBox.Lib uses the drag-and-drop, platform-independent extension architecture, and requires 4th Dimension 3.2.5 or greater or 4D Client and 4D Server 1.2.5 or greater.  ComboBox.Ext can be installed using the 4D External Mover, and is for use with versions of 4th Dimension prior to 3.2.5.  Both copies of ComboBox require System 7.0 or greater.
  17.  
  18. NOTE: It is extremely important that you do not include both copies of ComboBox for use with the same structure.  You should either install ComboBox.Ext using the 4D External Mover, or install ComboBox.Lib by dragging it into the Mac4DX folder, but not both.
  19.  
  20. Source Code
  21.  
  22. For those who are interested, source code for the ComboBox external area is now available.  Look for it in the archive from which you received this package.  The ComboBox Source package includes all C source code files, resource files, and Metrowerks® CodeWarrior™ Gold 7 project files necessary to build the FAT version of the ComboBox external area.  You will need to obtain the Platform- Independent Extension Authoring Kit from ACI or your local affiliate for the required header files.
  23.  
  24. Copyright Information
  25.  
  26. The ComboBox external area package and this document are copyright ©1995–1996 by Pensacola Christian College, Inc., 250 Brent Lane, Pensacola, FL  32503.  All trademarks referenced in this document are property of their respective holders.
  27.  
  28. License
  29.  
  30. This external area package is provided free of charge by Pensacola Christian College.  You may use it in as many database applications as you desire.  You may not sell it by itself or with any other group/bundle/collection of extensions, framework, shell, etc.  It is provided free of charge, so don’t sell it for its own sake.  Although you may distribute ComboBox freely, you may not charge any fee for the use, copying, or distribution of the product.  Pensacola Christian College maintains ownership of the ComboBox external area package as well as this documentation.
  31.  
  32. If the text of this document, or any portion thereof, is duplicated and distributed by any means — physical, electronic, or otherwise — such duplication and distribution must include the text of this document in its entirety and unaltered.  No fee may be charged for the for the duplication or distribution of the ComboBox external area or of this document.
  33.  
  34. By using or distributing ComboBox, you agree to this license and to the “No Warranty” section below.
  35.  
  36. No Warranty
  37.  
  38. PENSACOLA CHRISTIAN COLLEGE MAKES NO WARRANTY, EXPRESS OR IMPLIED, WITH RESPECT TO THIS SOFTWARE, ITS QUALITY, PERFORMANCE, OR FITNESS FOR A PARTICULAR PURPOSE.  THIS SOFTWARE IS PROVIDED “AS IS,” AND YOU, THE CONSUMER, ARE ASSUMING THE ENTIRE RISK AS TO ITS QUALITY AND PERFORMANCE.
  39.  
  40. IN NO EVENT WILL PENSACOLA CHRISTIAN COLLEGE AND/OR ANY OF ITS EMPLOYEES BE LIABLE FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES RESULTING FROM ANY DEFECT IN THE SOFTWARE OR ITS DOCUMENTATION, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.  IN PARTICULAR, NEITHER PENSACOLA CHRISTIAN COLLEGE NOR ANY OF ITS EMPLOYEES SHALL HAVE ANY LIABILITY FOR ANY HARDWARE, PROGRAMS OR DATA STORED IN OR USED WITH THIS PRODUCT, INCLUDING THE COSTS OF RECOVERING OR REPLACING SUCH HARDWARE, PROGRAMS OR DATA.
  41.  
  42. Acknowlegements
  43.  
  44. The behavior of the ComboBox external area package is based in part on the combo box from Microsoft® Windows™ and the AppleDirections articles “The Joys of Disambiguating,” March 1995, pp. 14-15, and “The Joys of Disambiguating, Part Two,” April 1995, pp. 14-16, by Peter Bickford.
  45.  
  46. Thanks to Dan Katz for providing the original ComboBox_DB database.
  47.  
  48. Thanks also to the members of the 4D list on the internet.  To subscribe to the 4D list, send email to 4d-nug@liststar.fsti.com with the word “subscribe” in the subject of your message.
  49.  
  50. Most importantly, thanks to Jesus Christ for answering many “I’m stuck, Lord;  please show me how to do this!” prayers, and for guiding me to the resources I needed to find the answers.
  51.  
  52. Comments
  53.  
  54. Send comments to Steve_Dwire@linq.pcci.edu.
  55.  
  56. About Pensacola Christian College
  57.  
  58. For more information about Pensacola Christian College and its related ministries, send e-mail to pccinfo@pcci.edu or visit our home page at http://www.pcci.edu.
  59.  
  60.  
  61.  
  62.  
  63. Default Commands
  64.  
  65.  
  66. CB_SetDefTxtFnt (FontNum; FontSize; FontStyle)
  67.  
  68. Sets the default font, size, and style for the text areas.
  69.  
  70. FontNum    Integer: The number of the font to use for displaying the text.  (Default = 1 {Geneva})
  71.  
  72. FontSize    Integer: The size, in points, to use for displaying the text.  (Default = 9)
  73.  
  74. FontStyle    Integer: The sum of the following style attributes to use for displaying the text:
  75.  
  76.     0    Plain
  77.     1    Bold
  78.     2    Italics
  79.     4    Underline
  80.     8    Outline
  81.     16    Shadow
  82.     32    Condensed
  83.     64    Extended
  84.  
  85.     (Default = 0 {Plain})
  86.  
  87.  
  88. CB_SetDefTxtCol (ForeColor; BackColor)
  89.  
  90. Sets the default colors for the text areas.
  91.  
  92. ForeColor    Integer: The number (0-255) of the color from 4D’s palette to use for the text foreground.  (Default = 15 {Black})
  93.  
  94. BackColor    Integer: The number (0-255) of the color from 4D’s palette to use for the text background.  (Default = 0 {White})
  95.  
  96.  
  97. CB_SetDefLstFnt (FontNum; FontSize; FontStyle)
  98.  
  99. Sets the default font, size, and style for the lists.
  100.  
  101. FontNum    Integer: The number of the font to use for displaying the lists.  (Default = 1 {Geneva})
  102.  
  103. FontSize    Integer: The size, in points, to use for displaying the lists.  (Default = 9)
  104.  
  105. FontStyle    Integer: The sum of the following style attributes to use for displaying the lists:
  106.  
  107.     0    Plain
  108.     1    Bold
  109.     2    Italics
  110.     4    Underline
  111.     8    Outline
  112.     16    Shadow
  113.     32    Condensed
  114.     64    Extended
  115.  
  116.     (Default = 0 {Plain})
  117.  
  118.  
  119. CB_SetDefLstCol (ForeColor; BackColor)
  120.  
  121. Sets the default colors for the lists.
  122.  
  123. ForeColor    Integer: The number (0-255) of the color from 4D’s palette to use for the list foreground.  (Default = 15 {Black})
  124.  
  125. BackColor    Integer: The number (0-255) of the color from 4D’s palette to use for the list background.  (Default = 0 {White})
  126.  
  127.  
  128. CB_SetDefLstRws (Rows)
  129.  
  130. Sets the default number of rows to display in the scrolling lists.
  131.  
  132. Rows    Integer: The number of rows to display in the scrolling lists.  (Default = 5)
  133.  
  134.  
  135. CB_SetDefPopPic (CUp; CDown; CDisabled; BUp; BDown; BDisabled)
  136.  
  137. Sets the default PICT resource IDs to use for the popup-indicator button.  Set these values to zero (0) if you do not wish to have a popup-indicator button.
  138.  
  139. CUp    Integer: PICT resource ID for the color picture of the popup-indicator button in the up (unpressed) position.
  140.  
  141. CDown    Integer: PICT resource ID for the color picture of the popup-indicator button in the down (pressed) position.
  142.  
  143. CDisabled    Integer: PICT resource ID for the color picture of the popup-indicator button when the area is disabled.
  144.  
  145. BUp    Integer: PICT resource ID for the black & white picture of the popup-indicator button in the up (unpressed) position.
  146.  
  147. BDown    Integer: PICT resource ID for the black & white picture of the popup-indicator button in the down (pressed) position.
  148.  
  149. BDisabled    Integer: PICT resource ID for the black & white picture of the popup-indicator button when the area is disabled.
  150.  
  151.  
  152. CB_SetDefGap (PICTGap; TopGap; LeftGap; RightGap)
  153.  
  154. Sets the default sizes (in pixels) of the gaps to leave in certain positions when drawing the area.  ComboBox draws no boundaries of any kind around the popup-indicator button or the text area.  You should draw your own boundaries behind the external area and set these gap values to allow  those boundaries to show through the gaps.  This strategy allows you to make ComboBox conform to your system’s own look and feel.
  155.  
  156. PICTGap    Integer: The size of the gap between the popup-indicator button and the right edge of the text area.  (Default = 0)
  157.  
  158. TopGap    Integer: The size of the gap between the bottom of the external area and the top of the list window.  (Default = 3)
  159.  
  160. LeftGap    Integer: The size of the gap between the left edge of the external area and the left edge of the list window.  (Default = 1)
  161.  
  162. Right Gap    Integer: The size of the gap between the right edge of the external area and the right edge of the list window.  (Default = 0)
  163.  
  164.  
  165. CB_SetDefLead (Leading)
  166.  
  167. Sets the default distance (in pixels) between the top of the external area and the top of the text area.
  168.  
  169. Leading    Integer: Distance between the top of the external area and the top of the text area.  (Default = 1)
  170.  
  171.  
  172. CB_SetDefFlags (CanFind; CanFill; CanList; CanEdit; ListOnActivate; ListOnKey)
  173.  
  174. Sets the flags governing the default behavior of ComboBox areas.
  175.  
  176. CanFind    Integer: When the user presses a key, if CanFind is one (1), ComboBox will select the first item the in the list that begins with what the user has typed.  If CanFind is zero (0), ComboBox will not change the selection in the list.  (Default = 1)
  177.  
  178. CanFill    Integer: When the user presses a key and ComboBox finds an item in the list that begins with what the user has typed, if CanFill is one (1), ComboBox will fill in the text area with the item from the list.  If CanFill is zero(0), ComboBox will not change the text area.  (Default = 1)
  179.  
  180. CanList    Integer: If CanList is one (1), ComboBox will display the list of choices when the user clicks on the popup-indicator button.  Clicking on the popup-indicator button when the list is open will close the list.  If CanList is zero (0), the list of choices will not be displayed.  (Default = 1)
  181.  
  182. CanEdit    Integer: If CanEdit is one (1), ComboBox will allow the user to edit the text in the text area.  ComboBox’s searching is based on the text found in the text area, and searching occurs only when the insertion point is at the end of the text.  Use this option if the user can choose items that are not in the list.  If CanEdit is zero (0), the user cannot edit or change the selection of the text in the text area.  ComboBox’s searching is based on the characters the user has typed.  The search string is reset whenever there is a pause in typing longer than the double-click time set in the Mouse Control Panel.  (Default = 0)
  183.  
  184. ListOnActivate    Integer: If ListOnActivate is one (1), the list of choices will appear whenever the external area is activated.  If ListOnActivate is zero (0), it will not.  Setting ListOnActivate to one (1) overrides CanList, and forces it to one (1).  (Default = 1)
  185.  
  186. ListOnKey    Integer: If ListOnKey is one (1), the list of choices will appear whenever the user types into the text area (see CanFind).  If ListOnKey is zero (0), it will not.  Setting ListOnKey to one (1) overrides CanList, and forces it to one (1).  (Default = 1)
  187.  
  188.  
  189.  
  190.  
  191. Area Commands
  192.  
  193.  
  194. CB_SetTxtFnt (Area; FontNum; FontSize; FontStyle)
  195.  
  196. Sets the font, size, and style for a text area.
  197.  
  198. Area    LongInt: The area to change.
  199.  
  200. FontNum    Integer: The number of the font to use for displaying the text.
  201.  
  202. FontSize    Integer: The size, in points, to use for displaying the text.
  203.  
  204. FontStyle    Integer: The sum of the following style attributes to use for displaying the text:
  205.  
  206.     0    Plain
  207.     1    Bold
  208.     2    Italics
  209.     4    Underline
  210.     8    Outline
  211.     16    Shadow
  212.     32    Condensed
  213.     64    Extended
  214.  
  215.  
  216. CB_SetTxtCol (Area; ForeColor; BackColor)
  217.  
  218. Sets the colors for a text area.
  219.  
  220. Area    LongInt: The area to change.
  221.  
  222. ForeColor    Integer: The number (0-255) of the color from 4D’s palette to use for the text foreground.
  223.  
  224. BackColor    Integer: The number (0-255) of the color from 4D’s palette to use for the text background.
  225.  
  226.  
  227. CB_SetLstFnt (Area; FontNum; FontSize; FontStyle)
  228.  
  229. Sets the font, size, and style for a list.
  230.  
  231. Area    LongInt: The area to change.
  232.  
  233. FontNum    Integer: The number of the font to use for displaying the list.
  234.  
  235. FontSize    Integer: The size, in points, to use for displaying the list.
  236.  
  237. FontStyle    Integer: The sum of the following style attributes to use for displaying the list:
  238.  
  239.     0    Plain
  240.     1    Bold
  241.     2    Italics
  242.     4    Underline
  243.     8    Outline
  244.     16    Shadow
  245.     32    Condensed
  246.     64    Extended
  247.  
  248.  
  249. CB_SetLstCol (Area; ForeColor; BackColor)
  250.  
  251. Sets the colors for a list.
  252.  
  253. Area    LongInt: The area to change.
  254.  
  255. ForeColor    Integer: The number (0-255) of the color from 4D’s palette to use for the list foreground.
  256.  
  257. BackColor    Integer: The number (0-255) of the color from 4D’s palette to use for the list background.
  258.  
  259.  
  260. CB_SetLstRws (Area; Rows)
  261.  
  262. Sets the number of rows to display in the scrolling list.
  263.  
  264. Area    LongInt: The area to change.
  265.  
  266. Rows    Integer: The number of rows to display in the scrolling list.
  267.  
  268.  
  269. CB_SetPopPic (Area; CUp; CDown; CDisabled; BUp; BDown; BDisabled)
  270.  
  271. Sets the PICT resource IDs to use for the popup-indicator button.  Set these values to zero (0) if you do not wish to have a popup-indicator button.
  272.  
  273. Area    LongInt: The area to change.
  274.  
  275. CUp    Integer: PICT resource ID for the color picture of the popup-indicator button in the up (unpressed) position.
  276.  
  277. CDown    Integer: PICT resource ID for the color picture of the popup-indicator button in the down (pressed) position.
  278.  
  279. CDisabled    Integer: PICT resource ID for the color picture of the popup-indicator button when the area is disabled.
  280.  
  281. BUp    Integer: PICT resource ID for the black & white picture of the popup-indicator button in the up (unpressed) position.
  282.  
  283. BDown    Integer: PICT resource ID for the black & white picture of the popup-indicator button in the down (pressed) position.
  284.  
  285. BDisabled    Integer: PICT resource ID for the black & white picture of the popup-indicator button when the area is disabled.
  286.  
  287.  
  288. CB_SetGap (Area; PICTGap; TopGap; LeftGap; RightGap)
  289.  
  290. Sets the sizes (in pixels) of the gaps to leave in certain positions when drawing the area.  ComboBox draws no boundaries of any kind around the popup-indicator button or the text area.  You should draw your own boundaries behind the external area and set these gap values to allow  those boundaries to show through the gaps.  This strategy allows you to make ComboBox conform to your system’s own look and feel.
  291.  
  292. Area    LongInt: The area to change.
  293.  
  294. PICTGap    Integer: The size of the gap between the popup-indicator button and the right edge of the text area.
  295.  
  296. TopGap    Integer: The size of the gap between the bottom of the external area and the top of the list window.
  297.  
  298. LeftGap    Integer: The size of the gap between the left edge of the external area and the left edge of the list window.
  299.  
  300. Right Gap    Integer: The size of the gap between the right edge of the external area and the right edge of the list window.
  301.  
  302.  
  303. CB_SetLead (Area; Leading)
  304.  
  305. Sets the distance (in pixels) between the top of the external area and the top of the text area.
  306.  
  307. Area    LongInt: The area to change.
  308.  
  309. Leading    Integer: Distance between the top of the external area and the top of the text area.  (Default = 1)
  310.  
  311.  
  312. CB_SetFlags (Area; CanFind; CanFill; CanList; CanEdit; ListOnActivate; ListOnKey)
  313.  
  314. Sets the flags governing the behavior of a ComboBox area.
  315.  
  316. Area    LongInt: The area to change.
  317.  
  318. CanFind    Integer: When the user presses a key, if CanFind is one (1), ComboBox will select the first item the in the list that begins with what the user has typed.  If CanFind is zero (0), ComboBox will not change the selection in the list.
  319.  
  320. CanFill    Integer: When the user presses a key and ComboBox finds an item in the list that begins with what the user has typed, if CanFill is one (1), ComboBox will fill in the text area with the item from the list.  If CanFill is zero(0), ComboBox will not change the text area.
  321.  
  322. CanList    Integer: If CanList is one (1), ComboBox will display the list of choices when the user clicks on the popup-indicator button.  Clicking on the popup-indicator button when the list is open will close the list.  If CanList is zero (0), the list of choices will not be displayed.
  323.  
  324. CanEdit    Integer: If CanEdit is one (1), ComboBox will allow the user to edit the text in the text area.  ComboBox’s searching is based on the text found in the text area, and searching occurs only when the insertion point is at the end of the text.  Use this option if the user can choose items that are not in the list.  If CanEdit is zero (0), the user cannot edit or change the selection of the text in the text area.  ComboBox’s searching is based on the characters the user has typed.  The search string is reset whenever there is a pause in typing longer than the double-click time set in the Mouse Control Panel.
  325.  
  326. ListOnActivate    Integer: If ListOnActivate is one (1), the list of choices will appear whenever the external area is activated.  If ListOnActivate is zero (0), it will not.  Setting ListOnActivate to one (1) overrides CanList, and forces it to one (1).
  327.  
  328. ListOnKey    Integer: If ListOnKey is one (1), the list of choices will appear whenever the user types into the text area (see CanFind).  If ListOnKey is zero (0), it will not.  Setting ListOnKey to one (1) overrides CanList, and forces it to one (1).
  329.  
  330.  
  331. CB_FillLst (Area;  “ArrayName”)
  332.  
  333. Fills the selected area’s list with the elements of a text array.
  334.  
  335. Area    LongInt: The area to change.
  336.  
  337. ArrayName    String: The name of the text array that holds the elements that belong in the area’s list.  The array must be either a process array or an interprocess array.  No local arrays are allowed.
  338.  
  339.  
  340. CB_UpdateLst (Area)
  341.  
  342. Updates the list’s internal data to reflect any changes in the array specified with CB_FillLst.  Call CB_UpdateLst whenever you make a change to your array.
  343.  
  344. Area    LongInt: The area to change.
  345.  
  346.  
  347. CB_SetLstPos (Area; Position)
  348.  
  349. Selects a particular item in an area’s list.  CB_SetLstPos also changes the text of the text area to reflect the item selected in the list.
  350.  
  351. Area    LongInt: The area to change.
  352.  
  353. Position    Integer: The element number to select in the list.
  354.  
  355.  
  356. CB_SetTxt (Area; Text)
  357.  
  358. Sets the text of the text area.  If you wish to set the text area to reflect a certain element of the list, use CB_SetLstPos.
  359.  
  360. Area    LongInt: The area to change.
  361.  
  362. Text    Text: The text to display in the text area.
  363.  
  364.  
  365. CB_SetModified (Area; Modified)
  366.  
  367. Sets or un-sets the modified flag for a particular area.  The modified flag is usually set whenever the user makes a change to the text in the area.
  368.  
  369. Area    LongInt: The area to change.
  370.  
  371. Modified    Integer: One (1) to set the modified flag or zero (0) to un-set it.
  372.  
  373.  
  374. CB_SetEnabled (Area; Enable)
  375.  
  376. Enables or disables a particular area.  Because of an apparent limitation in 4th Dimension’s extension interface, a user can click on or tab into a ComboBox area even when it is disabled.  When this happens, the area receives the input focus, but nothing happens.  When an area is disabled, the popup-indicator button changes to the disabled PICT resource.  It is the responsibility of the designer to change the color of the text, if desired, using CB_SetTxtCol.
  377.  
  378. Area    LongInt: The area to change.
  379.  
  380. Enable    Integer: One (1) to set enable the area or zero (0) to disable it.
  381.  
  382.  
  383. CB_SetHilite (Area; Start; End)
  384.  
  385. Sets the hilight range of the ComboBox’s text area.  This command should not normally be used on an area whose CanEdit flag (see CB_SetFlags) is set to zero (0).
  386.  
  387. Area    LongInt: The area to change.
  388.  
  389. Start    Integer: Number of the character after which the highlighting should start.  Zero (0) to start at the beginning.
  390.  
  391. End    Integer: Number of the character after which the highlighting should end.  
  392.  
  393. To move the insertion point, call CB_SetHilite with Start and End both equal to the number of the character after which the insertion point should be located.
  394.  
  395.  
  396.  
  397.  
  398. Information Commands
  399.  
  400.  
  401. CB_GetLstRws (Area) -> LongInt
  402.  
  403. Gets the number of rows an area is set to display in the scrolling list.
  404.  
  405. Area    LongInt: The area to check.
  406.  
  407. Returns the number of rows the area is set to display in the scrolling list.
  408.  
  409.  
  410. CB_GetLstPos (Area) -> LongInt
  411.  
  412. Gets the element number currently selected in an area’s scrolling list.
  413.  
  414. Area    LongInt: The area to check.
  415.  
  416. Returns the element number currently selected in the list.  Note that when the CanEdit flag is set to one (1) (see CB_SetFlags), the text of the selected element is not necessarily the same as the text in the text area even if there is an element in the list with text that matches the text area.  This is true because when the CanEdit flag is set to one (1), ComboBox searches only when the insertion point is at the end of the text.
  417.  
  418.  
  419. CB_GetTxt (Area; Text)
  420.  
  421. Gets the text from the text area.
  422.  
  423. Area    LongInt: The area to check.
  424.  
  425. Text    Text: A text variable to accept the text from the text area.
  426.  
  427.  
  428. CB_GetModified (Area) -> LongInt
  429.  
  430. Determines whether or not the area has been modified since it was selected.
  431.  
  432. Area    LongInt: The area to check.
  433.  
  434. Returns one (1) if the area has been modified since it was selected.  Otherwise, returns zero (0). 
  435.  
  436.  
  437. CB_GetEnabled (Area) -> LongInt
  438.  
  439. Determines whether or not the area is enabled.
  440.  
  441. Area    LongInt: The area to check.
  442.  
  443. Returns one (1) if the area is enabled.  Otherwise, returns zero (0). 
  444.  
  445.  
  446. CB_GetHilite (Area; Start; End)
  447.  
  448. Gets the hilight range of the ComboBox’s text area.
  449.  
  450. Area    LongInt: The area to check.
  451.  
  452. Start    Integer: Integer variable to receive the number of the character after which the highlighting starts.
  453.  
  454. End    Integer: Integer variable to receive the number of the character after which the highlighting ends. 
  455.  
  456.  
  457. CB_GetFontNum (“FontName”) -> LongInt
  458.  
  459. Returns the Font Number of the specified font.
  460.  
  461. FontName    String: The name of the desired font.
  462.  
  463. Returns the font number of the font specified in FontName.  
  464.  
  465.  
  466.  
  467.  
  468. Update History
  469.  
  470.  
  471. 1.1.1    Kept ComboBox areas from “swallowing” the escape key.  This change was necessary to allow the Customizer settings to work properly when the escape key is assigned to the “Cancel Layout” function.
  472.  
  473.     Fixed a crashing bug revealed with Charlie Rieman’s “Less-Obnoxious Bus Error” control panel.
  474.  
  475.     Fixed a bug that caused some of a layout’s text fields to display improperly in the design environment.
  476.  
  477.     Compiled with better optimizations, reducing the size of the FAT version by about 1K.
  478.  
  479. 1.1 (release)    Added CB_GetFontNum function.
  480.  
  481.     ComboBox now draws its default appearance in the design environment.
  482.  
  483.     Fixed crashing problem with CB_SetDefGap.
  484.  
  485.     Included Demo database from Dan Katz.
  486.  
  487.  Included Proc.ext-compatible version.  WARNING: Do not include both the ComboBox.Lib and the ComboBox.Ext versions in the same database.
  488.  
  489. 1.1 a2    Made PPC version into a Disk Fragment so it works with 4D x.5.
  490.  
  491. 1.1 a1    Kept ComboBox areas from “swallowing” the Enter key.
  492.  
  493.     Fixed a problem of “dead” scroll bars with multiple ComboBoxes on one layout.
  494.  
  495.     Made closing the list window call the ComboBox object’s script.
  496.  
  497. 1.0.2    (Maintenance Release) Made PPC version into a Disk Fragment so it works with 4D x.5.
  498.  
  499. 1.0.1    Fixed a problem that caused the list box to remain empty on the screen. Even though typing would choose one of the items, the items never displayed.  This would happen only on occasion, but when it did, it happened for the entire session on that database.
  500.  
  501.     Fixed a problem where clicking on a non-selectable object (a button, for example) would clear a ComboBox’s Modified flag.
  502.  
  503. 1.0    Initial Release
  504.  
  505.  
  506.  
  507.  
  508.  
  509. Known Problems and Limitations
  510.  
  511.  
  512. 1) Disabled areas still receive input focus.  This appears to be a limitation of 4D's extension architecture.
  513.  
  514. 2) When a ComboBox area is used in a modal (type 1) window and the user opens the list, 4D captures any mouse click in the list and beeps rather than allowing a list item to be chosen.  Note that this happens only when the area is in a modal window.
  515.  
  516. 3) The Color popup-indicator PICT resources are used even when the monitor is set to black & white.
  517.  
  518. 4) String comparisons are always diacritical-sensitive and limited to ASCII text.  There are currently no plans to support multi-lingual character sets in the near future.
  519.  
  520. If anyone finds other problems or knows how to work around these problems, please let me know at Steve_Dwire@linq.pcci.edu.
  521.  
  522. Thanks,
  523.  
  524. Steve Dwire
  525.  
  526.  
  527. (CodeWarrior is a trademark and Metrowerks is a registered trademark of Metrowerks, Inc. 4D is a trademark and 4th Dimension is a registered trademark of ACI/ACI US.  All other trademarks or registered trademarks are property of their respective owners.)